//数组元素两两之差绝对值的最小值，注意：a-b和b-a的绝对值相等

// 可以将数组中的元素，分别作为横纵坐标，构成一个矩阵
// 从矩阵中可以看出，实际上只是计算了一个上三角矩阵


#include <iostream>
#include <cmath>
using namespace std;

int getMinAbs(int arr[],int n)
{
    if(arr == NULL || n<2)
    {
        return -1;
    }
    int min_abs = 60000;
    for(int i = 0;i<n;i++)
    {
        for(int j = i+1;j<n;j++)
        {
            //双重循环计算上三角
            int tmp = arr[i]-arr[j];
            if(abs(tmp)<min_abs)
            {
                min_abs = abs(tmp);
            }
        }
    }
    return min_abs;
}

int main()
{

    int arr[7] = {1,12,23,4,25,20,2};
    cout<<"min_abs="<<getMinAbs(arr,7)<<endl;
    system("pause");
    return 0;
}
